1. Field of the Invention
This invention relates generally to redundant arrays of independent disks (RAIDs) and more specifically to a system and method for adaptive RAID configuration.
2. Description of the Related Art
Conventional RAID arrays (i.e., any disk drive array upon which one or more RAID volumes are extant) are used to provide some degree of data redundancy by trading disk usage efficiency for reliability in the form of data protection. In the simplest RAID case (RAID 1), data is mirrored onto two disk drives to provide 100% data redundancy, but at a cost of being 50% efficient with respect to using available disk space. Other types of RAID arrays (RAID 3 and RAID 5) are designed with three or more disk drives. Having more disk drives typically increases the storage space and efficiency of these types of RAID arrays.
As is commonly known, if disk drives of different sizes are used when configuring a RAID array, then an amount of disk space equal to the storage difference between the disk drives is usually not available to the RAID array. The result is a reduction in the storage efficiency of the RAID array. To illustrate this problem, consider constructing a RAID 1 array from a 100 gigabyte (GB) disk drive and a 150 GB disk drive. The RAID 1 array would consist of two 100 GB partitions (one from each disk drive); however, 50 GB of space would remain unallocated and unavailable to users.
In order to eliminate the problem of unused space, disk drives of identical sizes are often chosen to populate the RAID array. While choosing identical drive sizes may be a workable solution when the RAID array is first assembled, maintaining identical drive sizes may be difficult when modifying or expanding an established array. For example, consider a RAID 5 array initially constructed with three 100 GB disk drives. If one of the disk drives within the array were to fail, and the faulty disk drive could only be replaced with a 150 GB disk drive, then the modified RAID array would use only 100 GB of the available 150 GB from the new disk drive. A space of 50 GB would remain unallocated and unavailable to users. The same would hold true if a fourth disk drive, a 150 GB disk drive, were added to a RAID 5 array initially constructed with three 100 GB disk drives. The resulting four disk drive RAID 5 array would use only 100 GB of the available 150 GB from the additional disk drive. Again, a space of 50 GB would remain unallocated and unavailable to users.
As the foregoing illustrates, what is needed in the art is a way to configure a RAID array having disk drives of different sizes such that the storage efficiency of the RAID array is increased.